Leadtools.Forms.Auto Requires Document/Medical product license | Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
AutoFormsEngine Constructor(IMasterFormsRepository,Generic List,BarcodeEngine)
See Also  Example
Leadtools.Forms.Auto Namespace > AutoFormsEngine Class > AutoFormsEngine Constructor : AutoFormsEngine Constructor(IMasterFormsRepository,Generic List,BarcodeEngine)



repository
Repository for the Master Forms.
ocrEngines
List of IOcrEngine that are used for optical character recognition and processing. The size of the list specifies the number of threads to be used in AutoFormsEngine.
barcodeEngine
The BarcodeEngine that is used for barcode recognition and processing.
Initializes a new AutoFormsEngine class object that uses multi-threading to perform AutoFormsEngine functions such as recognition and processing.

Syntax

Visual Basic (Declaration) 
Public Function New( _
   ByVal repository As IMasterFormsRepository, _
   ByVal ocrEngines As List(Of IOcrEngine), _
   ByVal barcodeEngine As BarcodeEngine _
)
Visual Basic (Usage)Copy Code
Dim repository As IMasterFormsRepository
Dim ocrEngines As List(Of IOcrEngine)
Dim barcodeEngine As BarcodeEngine
 
Dim instance As AutoFormsEngine(repository, ocrEngines, barcodeEngine)
C# 
public AutoFormsEngine( 
   IMasterFormsRepository repository,
   List<IOcrEngine> ocrEngines,
   BarcodeEngine barcodeEngine
)
C++/CLI 
public:
AutoFormsEngine( 
   IMasterFormsRepository^ repository,
   List<IOcrEngine>^ ocrEngines,
   BarcodeEngine barcodeEngine
)

Parameters

repository
Repository for the Master Forms.
ocrEngines
List of IOcrEngine that are used for optical character recognition and processing. The size of the list specifies the number of threads to be used in AutoFormsEngine.
barcodeEngine
The BarcodeEngine that is used for barcode recognition and processing.

Example

Visual BasicCopy Code
Public Sub AutoFormRunThreadAuto()
   Dim filesNames As List(Of String) = New List(Of String)()
   filesNames.Add(LeadtoolsExamples.Common.ImagesPath.Path + "Forms\Images\FCC-107_OCR_Filled.tif")
   RasterCodecs.Startup()

   Dim root As String = LeadtoolsExamples.Common.ImagesPath.Path + "Forms\MasterForm Sets\OCR_ICR"
   Dim codecs As RasterCodecs = New RasterCodecs()
   'create repository
   Dim repository As DiskMasterFormsRepository = New DiskMasterFormsRepository(codecs, root)
   Dim ocrEngines As List(Of IOcrEngine) = New List(Of IOcrEngine)()
   Dim ocrEngine As IOcrEngine
   'creates four threads
   For i As Integer = 0 To 3
      ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, True)
      ocrEngine.Startup(Nothing, Nothing, Nothing, Nothing)
      ocrEngines.Add(ocrEngine)
   Next i

   BarcodeEngine.Startup(BarcodeMajorTypeFlags.Barcodes1d Or BarcodeMajorTypeFlags.Barcodes2dRead Or BarcodeMajorTypeFlags.BarcodesDatamatrixRead Or BarcodeMajorTypeFlags.BarcodesPdfRead Or BarcodeMajorTypeFlags.BarcodesQrRead)
   Dim engineBarcode As BarcodeEngine = New BarcodeEngine()
   'create AutoForm Engine
   Dim autoEngine As AutoFormsEngine = New AutoFormsEngine(repository, ocrEngines, engineBarcode)

   Try
      For Each formFileName As String In filesNames
         'recognize and process the form
         Dim result As AutoFormsRunResult = autoEngine.Run(formFileName, Nothing)
      Next formFileName
   Finally
      autoEngine.Dispose()
      For Each engine As IOcrEngine In ocrEngines
         engine.Shutdown()
         engine.Dispose()
      Next engine
      ocrEngines.Clear()
   End Try
   RasterCodecs.Shutdown()
End Sub
C#Copy Code
public void AutoFormRunThreadAuto() 

   List<string> filesNames = new List<string>(); 
   filesNames.Add(LeadtoolsExamples.Common.ImagesPath.Path +"FCC-107_OCR_Filled.tif"); 
 
   RasterCodecs.Startup(); 
 
   string root = LeadtoolsExamples.Common.ImagesPath.Path +@"Forms\MasterForm Sets\OCR_ICR"; 
   RasterCodecs codecs = new RasterCodecs(); 
   //create repository 
   DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, root); 
   List<IOcrEngine> ocrEngines = new List<IOcrEngine>(); 
   IOcrEngine ocrEngine; 
   //creates four threads 
   for(int i = 0; i < 4; i++) 
   { 
      ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, true); 
      ocrEngine.Startup(null, null, null, null); 
      ocrEngines.Add(ocrEngine); 
   } 
 
   BarcodeEngine.Startup(BarcodeMajorTypeFlags.Barcodes1d | BarcodeMajorTypeFlags.Barcodes2dRead | BarcodeMajorTypeFlags.BarcodesDatamatrixRead | BarcodeMajorTypeFlags.BarcodesPdfRead | BarcodeMajorTypeFlags.BarcodesQrRead); 
   BarcodeEngine barcodeEngine = new BarcodeEngine(); 
   //create AutoForm Engine 
   AutoFormsEngine autoEngine = new AutoFormsEngine(repository, ocrEngines, barcodeEngine); 
 
   try 
   { 
      foreach(string formFileName in filesNames) 
      { 
         //recognize and process the form 
         AutoFormsRunResult result = autoEngine.Run(formFileName, null); 
      } 
   } 
   finally 
   { 
      autoEngine.Dispose(); 
      foreach(IOcrEngine engine in ocrEngines) 
      { 
         engine.Shutdown(); 
         engine.Dispose(); 
      } 
      ocrEngines.Clear(); 
   } 
   RasterCodecs.Shutdown(); 
}

Remarks

It is the user's responsibility to dispose of this object when it is no longer needed by calling Dispose.

ocrEngines should be provided. If it is null, an exception is thrown.

If barcodeEngine is null, BarcodeObjectsManager will not be used for recognition and BarcodeFormField will not be processed.

The MinimumConfidenceRecognized is set to 90, MinimumConfidenceKnownForm is set to 30, and RecognizeFirstPageOnly is set to false.

The recognition Object Managers will be set to the managers used to generate the Master Forms in the repository.

To implement your own multiple thread or to not use threads use AutoFormsEngine(IMasterFormsRepository repository, List<IOcrEngine> ocrEngines, BarcodeEngine barcodeEngine).

Using Multiple threads is recommended since it speeds up form recognition and processing.

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also

Leadtools.Forms requires a Forms Module license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features